module hip.api.input.inputmap; public import hip.api.input.gamepad; interface IHipInputMap { struct Context { ///Got from the object that contains input information string name; ///Got from the "keyboard" properties from input json char[] keys; ///Got from "gamepad" properties from input json HipGamepadButton[] btns; } void registerInputAction(string actionName, Context ctx); float isActionPressed(string actionName); float isActionJustPressed(string actionName); float isActionJustReleased(string actionName); version(DirectCall) { static alias parseInputMap = HipInputMap.parseInputMap; } else version(ScriptAPI) { static IHipInputMap parseInputMap(ubyte[] file, string fileName, ubyte id = 0){return parseInputMap_Mem(file, fileName,id);} } } version(DirectCall) { public import hip.event.handlers.inputmap; } else { extern(System) __gshared { IHipInputMap function(ubyte[] file, string fileName, ubyte id = 0) parseInputMap_Mem; } }